Method and apparatus to prevent reporting multiple reads of optical coded items

ABSTRACT

A scanner comprising a data reader integrated with a weigh scale includes a processor that recognizes specific types of optical codes. In a preferred embodiment, when a weighable item is read by the data reader, a fixed delay timer, which prevents multiple reporting of the same item data before the timer expires, is not allowed to expire until after the item is removed from the weigh scale. In an alternative embodiment, the timer is set for one of several possible delay times depending on the type of symbol being read. The timer is not allowed to expire until the most recently reported data is no longer observed by the reader. Thus, the likelihood that multiple reads of the same symbol will be reported is greatly reduced.

RELATED APPLICATION

[0001] This application is a Continuation of application Ser. No.09/905,042 filed Jul. 12, 2001 entitled “Method and Apparatus to PreventReporting Multiple Reads of Optical Coded Items, which application ishereby incorporated by reference as set forth fully herein.

BACKGROUND OF THE INVENTION

[0002] Labels bearing information in any of a number of differentoptical code formats are commonly affixed to products, packaging, orother items and are used in many applications. It is common to encoderetail product identification information in an optical code or bar codeformat on a product package or a label affixed to a product or package.Optical code symbols are also used on a broad range of retail packagesfor check-out and inventory purposes. A scanner, located at thecheck-out station of a retail establishment for example, is used to scanan optical code label to obtain product identification data for use by ahost, such as an associated point-of-sale computer system.

[0003] In certain systems, multiple items are brought by the customer tothe checkout counter, and the checkout clerk (or the customer) passesthe item through the “read volume” of the scanner. The scanner reads thebar code and typically emits an audible tone indicating a successfulread. The bar code data is then reported to the host.

[0004] Many retail checkout scanners include a fixed delay timer, whichprevents multiple reporting of the bar code data. One such scanner isthe Duet scanner, available from PSC Inc. of Eugene, Oreg. The fixeddelay timer is activated when the scanner reads a bar code and reportsthe corresponding item data to the host. The timer is then restartedeach time that the scanner reads the same bar code before the timerexpires. When this occurs, data associated with the item is not reportedto the host a second time. Thus, the item data is only reported multipletimes if the timer expires before the bar code is read an additionaltime.

[0005] Many retail checkout scanners also include an integrated weighscale for weighing certain items that are priced by weight (“weighableitems”), such as produce. One such scanner is the Magellan®.scanner-scale, also available from PSC Inc. With the advent of bar codesor optical codes that are placed on food items and weighable items, aunique situation is created at the point of sale wherein the codes arecontained within the scanner's read volume for an extended period oftime. The extra time may be required while the items are being weighedand/or because the items may be placed within translucent bags whichmake reading more difficult. During this time, an optical code may bevisible and then not visible to the scanner several times, due tomovement of the items, movement of the semitransparent bags containingthe items, or other causes. Thus, even though it remains in the readvolume, the optical code might be unreadable (or not visible) for longerthan the timer delay. A similar situation may arise with smaller hard toread optical codes, such as those utilizing reduced space symbology(“RSS”). Because an RSS symbol in the form used on produce stickers isrelatively difficult to read, it may be read once and then remainunreadable for longer than the timer delay, if an item is scannedslowly. In these situations, if the bar code subsequently becomesreadable again, the scanner reports the additional read to the host.This reporting of the same item data multiple times is an unacceptablecondition for the system.

SUMMARY OF THE INVENTION

[0006] The present invention is directed to a system for and a method ofpreventing the reporting of multiple reads of optical code data at thepoint of sale, particularly for codes affixed to weighable items andfood items.

[0007] In a preferred configuration, a data reader is integrated with aweigh scale, and further includes a processor that recognizes specificcharacteristics or types of codes used for weighable items, produceitems, etc. Based on the characteristics or type of code being read, thefixed delay timer is modified to increase the likelihood that multiplereads of the same optical code will not be reported to the system host.In this embodiment, the fixed delay timer is set for a longer expirationtime for weighable items, produce items, and/or items bearing difficultto read optical codes. The expiration time may vary per item, per classof items, or per some other criteria. As a result, the likelihood thatmultiple reads of the same optical code will be reported is greatlyreduced.

[0008] In another preferred configuration, when a weighable item isrecognized by the processor, the fixed delay timer is not allowed toexpire until after the item is removed from the weigh scale and theexpiration time elapses. Thus, the scanner will not report multiplereads of the same optical code while the item remains on the weighscale.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009]FIG. 1 is a perspective view of a scanner-scale according to apreferred embodiment;

[0010]FIG. 2 is a side-sectional schematic view of the scanner-scale ofFIG. 1;

[0011]FIG. 3 is a flow chart illustrating how the scanner-scale operatesaccording to a preferred embodiment;

[0012]FIG. 4 is a flow chart illustrating how the scanner-scale operatesaccording to an alternative preferred embodiment;

[0013]FIG. 5 is a reduced space symbology (RSS) optical code.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0014] Preferred embodiments will now be described with reference to thedrawings. For ease of reference, any reference numeral identifying anelement in one figure will represent the same element in any otherfigure.

[0015]FIG. 1 is a perspective view of a scanner 10 according to apreferred embodiment. The scanner 10 comprises a data reader integratedwith a weigh scale comprising a weigh platter 12 used for weighingretail items at the point-of-sale. The scanner 10 includes a housing 14with a lower horizontal housing portion 16 and an upper housing portion18. The scanner 10 has two windows through which scan beams may pass,namely an upper window 20 arranged in a generally vertical plane, and alower window 22 arranged in a generally horizontal plane. The scanner 10is preferably mounted inside a countertop.

[0016]FIG. 2 is a side-sectional schematic view of the scanner 10illustrated in FIG. 1. The scanner 10 may comprise any combination ofcomponents suitable for scanning optical codes such as bar codes,industrial symbols, alphanumeric characters, or other indicia for objectrecognition. Details of a two-window scanner-scale are disclosed in U.S.Pat. No. 5,705,802, hereby incorporated by reference. The scanner-scalealso preferably includes an integrated two-plane weigh platter asdisclosed in U.S. Pat. No. 5,834,708, hereby incorporated by reference.

[0017] The scanner 10 includes a light source 24, such as a laser diodeor other suitable light emitter, for generating a laser beam 26 towardan object to be scanned, shown in this figure as an optical code 28. Theoptical code 28 is affixed to a retail item, such as the piece of fruit29 shown in phantom. The laser beam 26 is directed toward a beamsplitter 32. The beam splitter 32 reflects a portion of the beam 26toward a fold mirror 36 which then directs the beam through a collectionoptic 40 and toward a scanning mechanism, such as a rotating polygonmirror 34 coupled to a motor 35. The beam splitter 32 also transmits aportion of the beam 26, allowing it to pass to fold mirrors 39 whereuponit is redirected through another collection optic 40 and on to anotherside of the polygon mirror 34. Alternatively, multiple laser diodes maybe used to generate multiple laser beams.

[0018] The rotating polygon mirror 34 scans a first set of beams off ofa plurality of horizontal pattern mirrors 41 to direct a plurality ofscan lines into a scan volume through the horizontal window 22.Similarly, the rotating polygon mirror 34 scans another set of beams offof a plurality of vertical pattern mirrors 38 to direct a plurality ofscan lines into a scan volume through the vertical window 20.Alternatively, the beams may be directed through only a horizontal or avertical window. The scanned beams are preferably directed toward theoptical code 28 from several directions to increase the read volume ofthe scanner 10. One example of a scanner capable of scanning an itemfrom several directions is the PSC Magellan®. scanner/scale.

[0019] Still referring to FIG. 2, return light (shown as dotted lines)reflected from the optical code 28 is preferably directed along incomingoptical paths parallel to the outgoing optical paths of the scannedbeams. The return light is collected by the collection optics 40, whichmay be lenses, mirrors, or other optical collectors, and directed orfocused onto one or more photodetectors 42. The photodetectors 42convert the return signals impinging thereon into electrical signalsthat are sent to first signal processors 44. The first signal processors44 generally convert the electrical signals into digital pulse signalsin which the widths and spacings between the pulses correspond to thewidths of the bars and the spacings between the bars of the optical code28. At least one decoder 45, typically a microprocessor, decodes thepulse signal to obtain the optical code information, which identifiesthe type of item being scanned. Item data is then sent to a systemprocessor 47, which reports the data to a host, such as a cash registeror POS terminal 49.

[0020] The weigh platter 12 rests on at least one load cell 50 incommunication with a second signal processor 51, which registers theweight of items placed onto the platter 12. The second signal processor51 sends item weight data to the system processor 47, which reports theitem weight data to the host 49. The load cell 50/second signalprocessor 51 further informs the system processor 47 when an item isremoved from the weigh platter 12 (or when the weight on the weighplatter 12 significantly changes).

[0021] The POS terminal 49 is capable of accessing an electronic lookuptable containing item cost and weight data corresponding to informationobtained from various optical codes. The lookup table includes cost andweight data for each coded item sold in a store (with the exception ofitems bearing codes that have the cost and weight data embeddedtherein). For non-weighable items, the lookup table contains dataidentifying the cost of those items. For items priced by weight(“weighable items”), the lookup table contains data identifying theprice-per-unit weight of those items. For example, if peaches cost 99cents per pound, the lookup table contains data reflecting thatprice-per-unit weight information. Thus, when the scanner 10 reads anoptical code, the lookup table is accessed to obtain cost and/or weightdata for the corresponding item. For weighable items, the item cost iscomputed by multiplying the price-per-unit weight data found in thelookup table by the weight of the item registered by the weigh platter12. For example, if peaches cost 99 cents per pound, and two pounds ofpeaches are placed onto the weigh platter 12, the item cost iscalculated as 99 cents per pound multiplied by two pounds, or $1.98.

[0022] The scanner 10 further includes a timer 46 in communication withthe system processor 47 for preventing the reporting of multiple readsof an optical code to the host 49. Alternatively, the timer 46 mayreside inside the system processor 47 (as shown by the dashed lines) andmay be implemented in several ways. When an optical code is initiallyread, and the timer 46 is activated, the scanner 10 is prevented fromreporting the item identification data an additional time before thetimer 46 expires. If the scanner 10 reads the same optical code databefore the timer 46 expires, the timer 46 restarts and the itemidentification data is not reported. If the scanner 10 reads a newoptical code, or if the timer 46 expires and the scanner 10 then readsthe original optical code again, the item identification datacorresponding to the new read is reported to the host 49.

[0023] Typically, a different type of optical code, or a specialidentifier included in the code, distinguishes weighable items, such asproduce, from non-weighable items, such as packaged food items. Thesystem processor 47 recognizes the type of symbol or special identifierbeing read by the scanner 10 and informs the timer 46 to operateaccordingly, as further described below.

[0024]FIG. 3 is a flowchart illustrating operation of the scanner 10,according to a preferred embodiment. An item bearing an optical code ismoved through the read volume of the scanner 10 and, if the item isweighable, is placed onto the weigh platter 12. The scanner 10 attemptsto read the bar code information, and if data is available the systemprocessor 47 determines whether the multiple read timer 46 is activefrom previous data. If the timer is not already active, the data is sentdirectly to the POS terminal 49 subsequently, the system processordetermines whether the item requires a modified timer delay setting(hereafter referred to as “modified mode”) or a standard timer delaysetting (hereafter referred to as “standard mode”). The timer is thenset for the appropriate mode and started with the applicable delay. Thestandard delay time is generally in the range of 350-650 milliseconds,and is preferably in the range of 400-600 milliseconds. The modifieddelay time is generally in the range of 650 milliseconds to ten seconds,and preferably in the range of one second to five seconds.

[0025] If the timer was already active from previous data, the new datais compared to the last data transmitted to the POS terminal. If thedata is the same, then the timer is “restarted”, meaning that the timerstarts timing again from zero elapsed time towards its predetermineddelay setting.

[0026] After the bar code data processing is complete, the data providedby the weigh scale is examined. Measurement of weight on the scale isused for transactional purposes as well as for the purpose of thepresent invention, and thus will take place whether or not the system'smultiple read timer is running in modified mode or not.

[0027] If the timer is running in modified mode, a determination is madeas to whether there is weight on the scale above some minimum noisethreshold. If there is weight on the scale, the timer is restarted. Ifno weight is present, the timer continues to run. Based upon thisscheme, if the item bearing the bar code is left on the scale, the timerwill continue to be restarted, preventing the same bar code data frombeing reported multiple times. As an alternative to this method, thenumber of restarts in modified mode may be limited to avoid problemswhich may be caused by offsets to the scale's zero point.

[0028] If one item is being removed from the weigh platter 12, andanother item is placed onto the weigh platter 12 before the first itemis completely removed, the system will in most cases instantly read thenew item because the bar code data will typically be different from theprevious item, and thus the timer will not affect reporting of the data.If the second item is placed on the scale before the first item is fullyremoved, and the bar code data is the same, then the feature of limitingthe overall delay time or number of restarts of the timer will keep thesecond item from being indefinitely prevented from having its datatransmitted. Additionally, the scale signal processor 51 preferablyinforms the system processor 47 when an item is completely removed fromthe weigh platter 12, or when the weight on the weigh platter 12significantly changes, so that the delay timer will continue runningwhen the first item is substantially removed from the weigh platter 12.

[0029]FIG. 4 is a flowchart illustrating operation of the scanner 10according to an alternative preferred embodiment. In this embodiment,the delay timer is activated after the data reader reads and transmitsany type of optical code. Simultaneously, the system processor 47determines what type of code is being read (or processes actual dataembedded in the optical code itself). The delay timer is then set for adelay time that corresponds to the type of optical code or embedded databeing read. The delay time may differ for each individual item in astore, for different classes of items, or may vary based on some othercriteria. For example, when an optical code corresponding to a weighableitem is read, the delay time may be set for a longer duration than whenan optical code corresponding to a non-weighable item is read. Byutilizing a longer delay time for weighable items, the likelihood thatitem identification data will be reported multiple times is reduced. Ifthe same optical code is read before the expiration of the timer, thetimer resets to the delay time specified for the type of item beingread.

[0030] Additionally, if the optical code is small and difficult to read,such as a stacked RSS code 60 (shown in FIG. 5), which is often used onproduce, the delay time may be set for a longer duration than that setfor a standard optical code. The reason for the longer delay time isthat, if an item bearing an RSS code is scanned slowly, the RSS code maybecome unreadable for longer than the delay time after the code is reada first time. Thus, the delay timer is advantageously set for a longerduration than that set for a more easily readable standard optical code.In such a case, the timer may be set for the same delay time as that setfor weighable items, or for any other suitable delay time. The delaytime may also differ for each type of item bearing an RSS code.

[0031] The delay timer may be modified in a similar manner for othertypes of optical codes, particularly those used on produce, because suchitems are often placed into translucent bags through which it isdifficult to read the codes, and which are often moved around on theweigh platter 12. Accordingly, a longer delay time may be beneficial forthese types of optical codes in order to prevent the reporting ofmultiple reads.

[0032] The scanner described in any of the above embodiments may modifythe timer's delay time through any of several different methods. Somepossible methods for determining the appropriate delay time are asfollows:

[0033] the scanner may compare the scanned optical code data to aninternally stored list of items which require a modified timer setting;

[0034] the scanner may receive special information from the POS terminalabout specific types of scanned items;

[0035] the POS terminal may provide a complete list of items andcorresponding timer settings, which may be downloaded to the scannerbefore transactions occur;

[0036] the POS terminal may provide information on a per-read basisafter optical code data is received from the scanner;

[0037] the scanner may “learn” which items require an alternative delaytime by associating optical code data corresponding to an item with arequest for item weight from the POS terminal, and use such informationto update an internal list of items requiring modified delay times;

[0038] the delay time may be increased based upon the relative frequencyof optical code “segments” or pieces of complete code data which arereceived by the scanner.

[0039] While embodiments and applications of the present invention havebeen shown and described, it would be apparent to one skilled in the artthat modifications are possible without departing from the inventiveconcepts herein. The invention, therefore, is not to be restrictedexcept in the spirit of the claims that follow.

1. A method of data reading a symbol on an item, the symbol constitutingone of a plurality of symbol types, comprising the steps of obtainingitem identification data by reading the symbol with a data reader;determining the symbol type; reporting the item identification data to ahost; selecting a delay time based on the symbol type and/or on dataembedded in the symbol; activating a timer set to expire after theselected delay time elapses; preventing subsequent reporting of the itemidentification data before the timer expires.
 2. A method according toclaim 1 wherein the delay time is longer for symbol types correspondingto weighable items than for symbol types corresponding to non-weighableitems.
 3. A method according to claim 1 wherein the delay time is longerfor symbol types corresponding to produce items than for symbol typescorresponding to other items.
 4. A method according to claim 1 furthercomprising the step of restarting the timer if the symbol is read beforethe timer expires.
 5. A method according to claim 1 further comprisingthe step of reporting the item identification data to the host if thesymbol is read after the timer expires.
 6. A method of data reading asymbol on a weighable item, comprising the steps of providing a datareader with an integrated weigh scale; obtaining item identificationdata by reading the symbol with the data reader; activating a timer setto expire after a delay time elapses; reporting the item identificationdata to a host; obtaining weight of the item by weighing the item on theweigh scale; preventing subsequent reporting of the item identificationdata to the host while the item remains on the weigh scale; removing theitem from the weigh scale; preventing subsequent reporting of the itemidentification data before the timer expires.
 7. A method according toclaim 6 further comprising the step of modifying the delay time based onthe type of symbol read and/or on data embedded in the symbol.
 8. Amethod according to claim 6 wherein the delay time is in a range of 350milliseconds to 10 seconds.
 9. A method according to claim 6 furthercomprising the step of restarting the timer if the symbol is read beforethe timer expires.
 10. A method according to claim 6 further comprisingthe step of reporting the item identification data to the host if thesymbol is read after the timer expires.
 11. A method according to claim6 further comprising the step of continuously restarting the timer whilethe item remains on the weigh scale.
 12. A method according to claim 6further comprising the step of recognizing that the item has been atleast substantially removed from the weigh scale before allowing thetimer to expire.
 13. A method of data reading a symbol on an item,comprising the steps of providing a data reader with an integrated weighscale; obtaining item identification data by reading the symbol with thedata reader; determining whether the symbol corresponds to a weighableitem or a non-weighable item; activating a timer set to expire after adelay time elapses; reporting the item identification data to a host;obtaining weight of the item by weighing the item on the weigh scale ifthe item is a weighable item; preventing subsequent reporting of theitem identification data before the timer expires.
 14. A methodaccording to claim 13 further comprising the step of preventing thetimer from expiring until after the item is removed from the weigh scaleand the delay time elapses if the symbol corresponds to a weighableitem.
 15. A method according to claim 13 wherein the timer is set for alonger delay time for weighable items than for non-weighable items. 16.A system for reading a symbol on an item, the symbol constituting one ofa plurality of symbol types, comprising a data reader for reading thesymbol; a weigh scale integrated with the data reader for weighing theitem; a system processor in the data reader for determining the symboltype; a timer in communication with the system processor for preventingreporting of subsequent reads of the symbol that occur before the timerexpires, the timer settable for different expiration times based on thesymbol type and/or on data embedded in the symbol.
 17. A systemaccording to claim 16 wherein the timer is adapted to restart while anitem remains on the weigh scale.
 18. A system according to claim 16wherein the timer is set for a longer expiration time for symbol typescorresponding to weighable items than for symbol types corresponding tonon-weighable items.
 19. A system according to claim 16 wherein thetimer is set for a longer expiration time for symbol types correspondingto produce items than for other symbol types.
 20. A system according toclaim 16 wherein the timer is restartable, the timer restarting if thedata reader reads the symbol before the timer expires.
 21. A systemaccording to claim 16 further comprising a load cell in communicationwith the weigh scale for obtaining weight of the item and forrecognizing when the item is removed from the weigh scale.
 22. A systemaccording to claim 21 further comprising a signal processor fortransmitting data from the load cell to the system processor.